package com.ym.b2b.order.service;

import com.ym.b2b.commons.exception.BaseException;
import com.ym.b2b.order.sqlbean.EmSOrder;
import com.ym.b2b.order.vo.OrderInfoVO;
import com.zc.commons.base.Page;
import com.zc.commons.base.Result;

public interface EmSOrderService {

    public Page<EmSOrder> searchPageOrders(EmSOrder wareHouses, Page<EmSOrder> page) throws BaseException;

    /**
     * 下订单 并且通知erp系统
     * 
     * @Title: generateOrder
     */
    public Result generateOrder(OrderInfoVO vo) throws BaseException;

    /**
     * @Title: cancelOrder
     * @Description: 取消 订单
     */
    public Result cancelOrder(OrderInfoVO vo) throws BaseException;

    /**
     * 获取订单确认信息
     * 
     * @Title: getInfoForOrder
     */
    public Result getInfoForOrder(OrderInfoVO vo) throws BaseException;

    /**
     * 销售明细列表
     * 
     * @Title: searchOrderDetail
     * @Throws
     */
    public Result searchOrderDetail(OrderInfoVO vo) throws BaseException;

    /** 选择支付方式 **/
    public Result chooseOrderFeeType(String orderCode, Integer orderType) throws BaseException;

    /**
     * 订单相关的 质检单下载
     */
    public Result downloadOrderBatchZip(String orderCode) throws BaseException;

    /**
     * 更新订单信息
     */
    public Result updateOrder(EmSOrder order) throws BaseException;

    /**
     * 更新订单信息,确认订单
     */
    public Result updateOrderForConfirm(EmSOrder order) throws BaseException;

    /**
     * 更新订单信息 发货
     */
    public Result updateEmSOrderDelivery(EmSOrder order) throws BaseException;
    
    /**
     * @Title: getOrderInfo 
     * @Description: 根据订单code查询订单信息
     */
    public EmSOrder getOrderInfo(EmSOrder order) throws BaseException;
}
